home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / errors.bas < prev    next >
BASIC Source File  |  1997-06-14  |  2KB  |  62 lines

  1. Attribute VB_Name = "MErrors"
  2. Option Explicit
  3.  
  4. #If fComponent Then
  5. Sub ErrRaise(e As Long)
  6.     Dim sText As String, sSource As String
  7.     If e > 1000 Then
  8.         sSource = App.ExeName & "." & LoadResString((e \ 10) * 10)
  9.         sText = LoadResString(e)
  10.         Err.Raise e, sSource, sText
  11.     Else
  12.         ' Raise standard Visual Basic error
  13.         sSource = App.ExeName & ".VBError"
  14.         Err.Raise e, sSource
  15.     End If
  16.     ' Challenge: Enhance to use help files
  17. End Sub
  18. #End If
  19.  
  20. Sub ApiRaiseIf(ByVal e As Long)
  21.     If e Then MErrors.ApiRaise e
  22. End Sub
  23.  
  24. Sub ApiRaise(ByVal e As Long)
  25.     Err.Raise vbObjectError + 29000 + e, _
  26.               App.ExeName & ".Windows", ApiError(e)
  27. End Sub
  28.  
  29. Function ComToApi(ByVal e As Long) As Long
  30.     ComToApi = (e And &HFFFF&) - 29000
  31. End Function
  32.  
  33. Function ApiToCom(ByVal e As Long) As Long
  34.     ApiToCom = (e Or &H80040000) + 29000
  35. End Function
  36.  
  37. Function ComToApiStr(ByVal e As Long) As String
  38.     ComToApiStr = ApiError((e And &HFFFF&) - 29000)
  39. End Function
  40.  
  41. Function ApiError(ByVal e As Long) As String
  42.     Dim s As String, c As Long
  43.     s = String(256, 0)
  44.     c = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM Or _
  45.                       FORMAT_MESSAGE_IGNORE_INSERTS, _
  46.                       pNull, e, 0&, s, Len(s), ByVal pNull)
  47.     If c Then ApiError = Left$(s, c)
  48. End Function
  49.  
  50. Function LastApiError() As String
  51.     LastApiError = ApiError(Err.LastDllError)
  52. End Function
  53.  
  54. Function BasicError(ByVal e As Long) As Long
  55.     BasicError = e And &HFFFF&
  56. End Function
  57.  
  58. Function COMError(e As Long) As Long
  59.     COMError = e Or vbObjectError
  60. End Function
  61. '
  62.